package com.wingice.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wingice.common.page.EntityPageBean;
import com.wingice.system.entity.SysUser;
import com.wingice.system.vo.SysUserView;
import org.springframework.security.core.userdetails.UserDetailsService;

import java.util.List;

/**
 * <p>
 * 用户信息 服务类
 * </p>
 *
 * @author 胡昊
 * @since 2020-07-23
 */
public interface SysUserService extends IService<SysUser>, UserDetailsService {

    /**
     * @param sysUser 用户信息
     * @description 新增用户
     * @author 胡昊
     * @email huhao9277@gmail.com
     * @date 2020/7/24 13:28
     */
    Boolean insert(SysUser sysUser);

    /**
     * @param idList 待删除用户id列表
     * @description 批量删除用户
     * @author 胡昊
     * @email huhao9277@gmail.com
     * @date 2020/7/24 13:51
     */
    Boolean deleteBatch(List<String> idList);

    /**
     * @param sysUser 用户信息
     * @description 更新用户信息
     * @author 胡昊
     * @email huhao9277@gmail.com
     * @date 2020/7/24 15:25
     */
    Boolean update(SysUser sysUser);

    /**
     * @param oldPassword 老密码
     * @param newPassword 新密码
     * @description 用户修改密码
     * @author 胡昊
     * @email huhao9277@gmail.com
     * @date 2021/3/23 9:04
     */
    Boolean userUpdatePassword(String oldPassword, String newPassword);

    /**
     * @param entityPageBean 查询条件
     * @description 分页查询用户
     * @author 胡昊
     * @email huhao9277@gmail.com
     * @date 2020/7/24 15:39
     */
    Page<SysUserView> pageUser(EntityPageBean<SysUser> entityPageBean);
}
